package cn.com.dcsgo.mapper;

import cn.com.dcsgo.pojo.Employee;

import java.util.List;
import java.util.Map;

/**
 * EmployeeMapper
 *
 * @author Dcsgo
 * @since 2025/2/20 15:12
 */

public interface EmployeeMapper {

    /**
     * 插入一个员工信息并回写自增长主键值
     *
     * @param employee employee
     * @return 受影响行数
     */
    int insertEmployee(Employee employee);

    /**
     * 获取所有员工信息
     *
     * @return List<Employee>
     */
    List<Employee> queryAll();

    /**
     * 获取所有员工姓名
     *
     * @return List<String>
     */
    List<String> queryAllNames();

    /**
     * 查询最大工资员工信息和平均工资
     *
     * @return Map<String, Object> employee 员工信息, avgSalary 平均工资
     */
    Map<String, Object> queryMaxSalaryEmployeeAndAvgSalary();

    /**
     * 添加一个员工信息
     *
     * @param employee employee
     * @return 受影响的行数(DML insert update delete 都是如此)
     */
    int addOne(Employee employee);

    /**
     * 根据id删除一个员工信息
     *
     * @param id id
     * @return 受影响的行数
     */
    int removeById(Integer id);

    /**
     * 根据id查询一个员工信息
     *
     * @param id id
     * @return Employee
     */
    Employee queryById(Integer id);

    /**
     * 根据id查询一个员工姓名
     *
     * @param id id
     * @return 员工姓名
     */
    String queryNameById(Integer id);
}
